package cn.song.constants;

/**
 * 通用枚举接口
 *
 * @author SongRenShuo
 * @date 2025/01/06
 */
public interface BaseEnum {

    /**
     * 获取枚举编码
     *
     * @return 编码
     */
    Integer getCode();

    /**
     * 获取枚举值名称
     *
     * @return 枚举值名称
     */
    String getName();

    /**
     * 通过code获取枚举
     *
     * @param code code
     * @return {@link T }
     * @date 2025/01/05
     * @author SongRenShuo
     */
    static <T extends BaseEnum> T valueOf(Integer code) {
        return null;
    }

    /**
     * 通过name获取枚举
     *
     * @param name 名称
     * @return {@link T }
     * @date 2025/01/20
     * @author SongRenShuo
     */
    static <T extends BaseEnum> T valueOfName(String name) {
        return null;
    }
}
